#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File    : /multi_thread.py
@Time    : 2021-05-20 14:59:59
@Author  : Gray Snail
@Version : 1.0
@Contact : shtao2011@sina.com
@License : Copyright (c) 2021 Gray Snail
@Desc    : 多线程
'''

from threading import Thread, RLock
import time

'''
python中的多线程无法同时执行（GIL）

线程的创建速度比进程的创建快很多

递归锁 RLock:增加了计数，相当于线程锁？
'''

# 函数式线程执行代码
def worker(name):
    print(f'{name} 正在执行...')
    time.sleep(2)
    print(f'{name} 执行完毕...')


# OOP 多线程
class MyThread(Thread):
    def __init__(self, name):
        super().__init__()
        self.name = name

    def run(self):
        name = self.name
        print(f'{name} 正在执行...')
        time.sleep(2)
        print(f'{name} 执行完毕...')


if __name__ == '__main__':
    t1 = Thread(target=worker, args=('Chancey',))
    t1.start()

    t2 = MyThread('Berlin')
    t2.start()
    t1.join()

    print('主线程')
